#ifndef DPLDRAWSCAN_H
#define DPLDRAWSCAN_H

#include <QObject>

struct DrawInfo
{
    int nDrawType ;
    int nGroupId  ;
    int BeamId    ;
    int nEncoderType ;
    int nSourceType  ;
};


class QImage ;

class DplDrawScan
{
public:
    enum DRAW_TYPE
    {
        NO_TYPE = 0   ,
        A_SCAN_H      ,
        A_SCAN_V      ,
        B_SCAN_H      ,
        C_SCAN_V      ,
        S_SCAN_SOUNDPATH ,
        S_SCAN_A      ,
        S_SCAN_L
    };
    DplDrawScan(QImage* pImage_ = NULL);
    void SetDrawType(DRAW_TYPE nType_)   ;
    void SetDrawInfo(DrawInfo* cInfo_)  ;
    void SetDrawBuff(QImage* pImage_) ;
    virtual void Draw();
protected:
    QImage* m_pImage ;
    DrawInfo m_cInfo  ;
};


class DplDrawAscanH:public DplDrawScan
{
public:
    DplDrawAscanH(QImage* pImage_ = NULL):DplDrawScan(pImage_){}
    virtual void Draw();
} ;

class DplDrawAscanV:public DplDrawScan
{
public:
    DplDrawAscanV(QImage* pImage_ = NULL):DplDrawScan(pImage_){}
    virtual void Draw();
} ;

class DplDrawBscanH:public DplDrawScan
{
public:
    DplDrawBscanH(QImage* pImage_ = NULL):DplDrawScan(pImage_){}
    virtual void Draw();
} ;

class DplDrawBscanV:public DplDrawScan
{
public:
    DplDrawBscanV(QImage* pImage_ = NULL):DplDrawScan(pImage_){}
    virtual void Draw();
} ;

class DplDrawCscanH:public DplDrawScan
{
public:
    DplDrawCscanH(QImage* pImage_ = NULL):DplDrawScan(pImage_){}
    virtual void Draw();
} ;

class DplDrawCscanV:public DplDrawScan
{
public:
    DplDrawCscanV(QImage* pImage_ = NULL):DplDrawScan(pImage_){}
    virtual void Draw();
} ;


class DplDrawSscan:public DplDrawScan
{
public:
    DplDrawSscan(QImage* pImage_ = NULL):DplDrawScan(pImage_){}
    virtual void Draw();
} ;

class DplDrawSscanA:public DplDrawScan
{
public:
    DplDrawSscanA(QImage* pImage_ = NULL):DplDrawScan(pImage_){}
    virtual void Draw();
} ;

class DplDrawSscanL:public DplDrawScan
{
public:
    DplDrawSscanL(QImage* pImage_ = NULL):DplDrawScan(pImage_){}
    virtual void Draw();
} ;
#endif // DPLDRAWSCAN_H
